Miles Sound System SDK 7.2a

Miles DTS Provider for the Sony PS2

Discussion

The Miles DTS provider is accessed by passing MSS_MC_40_DTS or MSS_MC_51_DTS as the channel specification in a call to AIL_open_digital_driver or AIL_quick_startup. Miles's DTS support is provided by a run-time surround-sound encoder module which is implemented in a so-called 'matrix' output filter.

To add DTS support to your Sony PS2 application, you'll need to link with the mssdts.a library provided with the MSS distribution, and also with the libidtsenc.a library obtained directly from DTS.

You'll need to call Register_RIB(DTS) prior to AIL_startup, and you'll also need to pass the RAD_IOP_NEED_CORE0 + RAD_IOP_SPDIF flags to both RAD_IOPMemoryAmount and RAD_IOPStartUp. That's all there is to it! However, for best CPU performance, we also recommend that you allow Miles access to the PS2 scratchpad RAM when using DTS. You can do this by calling AIL_set_scratchpad_policy at any time.

VU0 Usage

The DTS encoder heavily utilizes VU0 (Vector Unit 0) in macro mode. Registers VF01 through VF31 and the ACC register, as well as the MAC and Status flags, are all used by the DTS encoder at interrupt time. MSS saves and restores these registers, so your application should not normally be affected.

If any VU0 code is executing in micro mode when an MSS mixer service interrupt occurs, the DTS encoder will stall until the micro mode routine has finished executing. Any code or data in local VU0 memory is not affected by the encoder.

Switching between PCM and DTS

According to DTS, when switching the digital output from PCM to DTS or DTS to PCM, it is necessary to produce 2 seconds of silent PCM or DTS data after the switch occurs. Otherwise the switch may not work correctly on some receivers. In practice, since the Miles DTS encoder begins generating a silent bitstream as soon as AIL_open_digital_driver is called, this guideline can be met by refraining from playing any sounds for two seconds after opening the driver.

DTS Preference Control

The Miles DTS module doesn't provide any output-filter properties or properties. If your application is tight on memory, you can control the encoding quality by setting a lower value for the DIG_ENCODE_QUALITY_PERCENT preference before calling AIL_open_digital_driver. This property can range from 0 to 100, and defaults to 50.

Licensing info Miles ships with everything necessary to hook up to DTS, except for the DTS library itself. The DTS library is only available directly from DTS. To obtain it (and we definitely recommend doing so - it sounds great!), just drop an email to Mitch Soule at mitchs@radgametools.com and he can hook you up with the DTS folks.


Related Sections: Miles DTS Provider for the Sony PS2
Related Functions: AIL_open_digital_driver, AIL_quick_startup, AIL_set_scratchpad_policy, AIL_startup, RAD_IOPMemoryAmount, RAD_IOPStartUp
Related Basic Types: MILES_PREFERENCES, MSS_MC_SPEC

For technical support, e-mail Miles3@radgametools.com
© Copyright 1991-2007 RAD Game Tools, Inc. All Rights Reserved.